for (i=0;i<31;i++)
calendar->marked_date[i] = FALSE;
+ calendar->num_marked_dates = 0;
calendar->selected_day = 1;
calendar->display_flags = ( GTK_CALENDAR_SHOW_HEADING |
{
if (calendar->selected_day < 0)
calendar->selected_day = calendar->selected_day + 1 + month_length[leap (calendar->year)][calendar->month + 1];
- else
- gtk_calendar_select_day (calendar, calendar->selected_day);
+ gtk_calendar_select_day (calendar, calendar->selected_day);
}
- gtk_calendar_select_day (calendar, calendar->selected_day);
gtk_calendar_paint (GTK_WIDGET (calendar), NULL);
gtk_calendar_thaw (calendar);
}
{
calendar->marked_date[day] = FALSE;
}
-
+
+ calendar->num_marked_dates = 0;
+
if (GTK_WIDGET_DRAWABLE (calendar))
{
gtk_calendar_paint_main (GTK_WIDGET (calendar));
g_return_val_if_fail (calendar != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE);
- if (day >= 1 && day <= 31)
- calendar->marked_date[day - 1] = TRUE;
-
+ if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == FALSE)
+ {
+ calendar->marked_date[day - 1] = TRUE;
+ calendar->num_marked_dates++;
+ }
if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
{
gtk_calendar_paint_main (GTK_WIDGET (calendar));
g_return_val_if_fail (calendar != NULL, FALSE);
g_return_val_if_fail (GTK_IS_CALENDAR (calendar), FALSE);
- if (day >= 1 && day <= 31)
- calendar->marked_date[day - 1] = FALSE;
+ if (day >= 1 && day <= 31 && calendar->marked_date[day-1] == TRUE)
+ {
+ calendar->marked_date[day - 1] = FALSE;
+ calendar->num_marked_dates--;
+ }
if (GTK_WIDGET_DRAWABLE (GTK_WIDGET (calendar)))
{